import randomBgColor from "src/mixins/style/randomBgColor.js";
import alllanguage from "src/mixins/language/alllanguage.js";

export default {
  mixins: [randomBgColor, alllanguage],
  data() {
    return {
      dataSourceCode_color: {
        bc: "#5064D5",
        sr: "#B83636"
      }
    };
  },
  methods: {
    //根据后台返回的联赛级别id返回对应显示值
    compute_tournamentLevel(item) {
      let obj = this.match_level_constant.find(el => el.value == item + "");
      if (obj) {
        return obj.label;
      }
    },
    compute_dataSourceCode_col_color(item) {
      let key = item.dataSourceCode.toLowerCase();
      let val = this.dataSourceCode_color[key];
      return val;
    },
    compute_table_col_leagueName_style(item) {
      if (!item) {
        return "";
      }
 
      let str = this.compute_table_col_width("leagueName");
      if (item.is_child_showing) {
        return str;
      }else{


      let name = this.compute_table_item_show_name(item, "", "leagueName");

      if (name) {
        return `${str} ;background-color:${this.table_col_leagueName_color_map[name]};`;
      } else {
        return `${str} ;background-color: #ffffff;`;
      }

      }


    },
    compute_operateMatchStatus_dot_class(item) {
      let str=(item.riskManagerCode + "").toUpperCase()

      if (item.operateMatchStatus != 1) {
        return "panda-dot-grey";
      } else {
        if (str == "SR") {
          return "panda-dot-red";
        }
        if ( str == "PA") {
          return "panda-dot-green";
        }
        if ( str == "BC") {
          return "panda-dot-blue";
        }
        return "panda-dot-grey";
      }
    },
    compute_if_show_dataSourceCode(item) {
      if (item.dataSourceCode == "188") {
        return false;
      } else {
        return true;
      }
    },
    compute_operateMatchStatus_show_text(item) {
      // props.row.operateMatchStatus
      let n = item.operateMatchStatus;
      if (n == 0) {
        return "未开盘";
      } else if (n == 1) {
        return item.riskManagerCode + "开盘";
      } else if (n == 2) {
        return item.riskManagerCode + "封盘";
      }
      return "未开盘";
      // return "无盘口数据";
    },
    compute_show_time(item, label_item) {
      let value = item.beginTime;
      if (!value) {
        return "";
      }
      let time = parseInt(value) + 8 * 60 * 60 * 1000;
      let [y, m, d, h, mm, s] = this.format_date_base(time);
      // 此处是tablerow使用的，返回时间拼接时间和赛事状态
      if (label_item === '其他早盘') {
        return this.join_the_mathStaus(`${h}:${mm}`, item, `${m}/${d}`)
      } else {
        return this.join_the_mathStaus(`${h}:${mm}`, item)
      }
    },
    join_the_mathStaus (arg, item, day) {
      if (this.allMatchStaus && this.allMatchStaus['match_status_constant']) {
        if (this.allMatchStaus['match_status_constant'].length) {
          let obj = this.allMatchStaus['match_status_constant'].find(el => el.id === item.matchPeriodId)
          obj = obj || {}
          if (day) {
            return obj.value ? `${day} ${arg} ${obj.value}` : day
          } else {
            return obj.value ? `${arg } ${obj.value}` : arg    // `${arg} ${obj.value}` : arg
          }
        }
      }
    },
    rebuild_tabledata_to_needed(arr) {
      let namearr = [];
      arr.map((x, xi) => {
        x.show_level_change = false;
        x.show_expand = false;
        if (this.selected_item_pool_id_all.includes(x.id)) {
          x.is_selected = true;
        } else {
          x.is_selected = false;
        }
        x.index=xi
        x.dataSourceCode_color = this.dataSourceCode_color[
          x.dataSourceCode.toLowerCase()
        ];
        // 集合所有联赛名
        namearr.push(this.compute_table_item_show_name(x, "", "leagueName"));
        // 查看是否有选中置顶
        if (this.selected_item_pool_id_all.includes(x.id)) {
          x.is_selected = true;
        } else {
          x.is_selected = false;
        }
        // 关联  赛事问题
        if (Array.isArray(x.relatedMatch)) {
          // arr用来接收数据源
          let arr1 = [];
          x.relatedMatch.map(x1 => {
            //提取所有的 数据源
            arr1.push(x1.dataSourceCode);
            //挂载父亲信息
            x1.parent_dataSourceCode = x.dataSourceCode;
            x1.parent_id = x.id;
            x1.is_child_showing = false;
            // 提取所有子项数据源 并配色
            x1.dataSourceCode_col_dot_config = [
              {
                label: x1.dataSourceCode,
                color: this.dataSourceCode_color[
                  x1.dataSourceCode.toLowerCase()
                ]
              }
            ];
            //子项挂在自身数据源颜色
            x1.dataSourceCode_color = this.dataSourceCode_color[
              x1.dataSourceCode.toLowerCase()
            ];
            // 子项 挂载  竞品数据   配置
            x1.not_commercialized_dataSourceCode_str = this.$lodash.difference(
              [x1.dataSourceCode],
              this.dataSource_obj.is_commerce_dataSource
            )[0];
          });

//'======================================================================================'


          // 去重 ，测试阶段 后台很坑的假数据 进行过滤，实际生产不会出现
          arr1 = Array.from(new Set(arr1));
          // 挂载所有自身相关的 数据源
          x.all_related_dataSourceCode = arr1.concat([]);
          // 去首  
          // 根据全局 的 数据源 接口 返回  能提供开盘数据的数据商  能商业化的  不能商业化的 都是竞品数据
          //
          //  商业化的
          let commercialized_dataSourceCode = this.$lodash.intersection(
            arr1,
            this.dataSource_obj.is_commerce_dataSource
          );
          // 非 商业化的
          let not_commercialized_dataSourceCode = this.$lodash.intersection(
            arr1,
            this.dataSource_obj.not_commerce_dataSource
          );
          // 颜色配置
          let col_dot_color_config = [];
          // 生成    商业化的数据源 颜色 配置  不包含竞品数据 也就是非商业化数据
          //  此时 主要数据源是在首位的 不用分离
          commercialized_dataSourceCode.map(x2 => {
            col_dot_color_config.push({
              label: x2,
              color: this.dataSourceCode_color[x2.toLowerCase()]
            });
          });

          // 挂在配置
          x.commercialized_dataSourceCode = commercialized_dataSourceCode;
          x.dataSourceCode_col_dot_config = col_dot_color_config;
          x.not_commercialized_dataSourceCode = not_commercialized_dataSourceCode;
          x.not_commercialized_dataSourceCode_str = not_commercialized_dataSourceCode.join(
            ","
          );
        } else {
          // 没有子关联项目
          // 挂载所有自身相关的 数据源
          x.all_related_dataSourceCode = [x.dataSourceCode];
          let commercialized_dataSourceCode = this.$lodash.intersection(
            [x.dataSourceCode],
            this.dataSource_obj.is_commerce_dataSource
          );
          x.commercialized_dataSourceCode = commercialized_dataSourceCode
          // 目前 列表 一级数据  不会存在返回竞品数据
          x.not_commercialized_dataSourceCode_str = "";
          //挂在单条数据 数据源 颜色配置
          x.dataSourceCode_col_dot_config = [
            {
              label: x.dataSourceCode,
              color: this.dataSourceCode_color[x.dataSourceCode.toLowerCase()]
            }
          ];
        }
      });
      // 联赛名称 颜色问题
      namearr = this.$lodash.union(namearr);
      let namemap = new Map();
      namearr.map((y, i) => {
        namemap[y] = this.random_color_pool[i % this.random_color_pool.length];
      });

      this.table_col_leagueName_color_map = namemap;
      console.log("加工后的列表数据");
      console.log(arr);

      return arr;
    },
    rebuild_tabledata_to_needed_edit_page(arr) {
      let namearr = [];
      arr.map((x, i) => {
        // 关联  赛事问题
        if (Array.isArray(x.relatedMatch)) {
          let arr = [];
          x.relatedMatch.map(x1 => {
            //提取所有的 数据源
            arr.push(x1.dataSourceCode);
          });

          // 去重 ，测试阶段 后台很坑的假数据 进行过滤，实际生产不会出现
          arr = Array.from(new Set(arr));

          // 挂载所有自身相关的 数据源
          x.all_related_dataSourceCode = arr.concat([]);
          //  商业化的
          let commercialized_dataSourceCode = this.$lodash.intersection(
            arr,
            this.dataSource_obj.is_commerce_dataSource
          );

          // 挂载 商业化 数据源
          x.commercialized_dataSourceCode = commercialized_dataSourceCode;
        } else {
          // 没有子关联项目    理论上不存在   开盘这里 需要先 进行 关联操作  才能 进行
          // 挂载所有自身相关的 数据源

          x.all_related_dataSourceCode = [x.dataSourceCode];
          x.commercialized_dataSourceCode =[x.dataSourceCode]
          //挂在单条数据 数据源 颜色配置
        }
      });
      console.log("加工后的列表数据");
      console.log(arr);

      return arr;
    }
  }
};
